package org.esti.service;

import org.esti.model.Level;

import java.util.Collection;
import java.util.Map;
import java.util.Set;

/**
 * @author Artem Loginov (logart)
 */

/**
 * Provide access to levels and all action on it.
 */
public interface LevelService {
    /**
     * return all levels stored in db
     *
     * @return list of levels stored in db
     */
    Collection<Level> getAllLevels();

    /**
     * return specific level by it id
     *
     * @param id of level which will be returned
     * @return level with specific id
     */
    Level getLevel(Long id);

    void add(Level level);

    void remove(long id);

    Map<Long, String> getAllLevelsMap();

    Set<Level> getAvailableLevels();
}
